# -*- coding: UTF-8 -*-
'''
@Project ：pythonProject 
@File    ：strDemo11.py
@Author  ：jujuwei
@Date    ：2023/10/27 16:25 
'''
import re

pattern = '\d\.\d+'
string1 = 'I study python3.11 every day12 python2.7'

# re.search(pattern,string,flags=0):用于从字符串的任意位置匹配第一个值，如果匹配成功，结果为Match对象，否则结果为None
print(re.search(pattern, string1))  # search()从字符串中匹配第一个值,只能匹配到3.11
print(re.search(pattern, string1).group())

string2 = '3.11python every day12'
print(re.search(pattern, string2))  # 符合pattern规则的值在开头也能匹配到

string3 = 'I study python'
print(re.search(pattern, string3))  # 不符合pattern,返回none

print('_' * 50)
# re.findall(pattern,string,flags=0):用于在整个字符串搜索所有符合正则表达式的值，结果是一个列表类型。
list1 = re.findall(pattern, string1)
list2 = re.findall(pattern, string2)
list3 = re.findall(pattern, string3)

print(list1)
print(list2)
print(list3)

print('_' * 50)

# re.sub(pattern,repl,string,count,flags=0):用于实现对字符串中指定子串的替换
pattern2 = '黑客|破解|反爬'
string4 = '我想学习Python，当一名黑客,想破解一些VIP视频，Python可以实现无底线反爬吗?'
print(re.sub(pattern2, '**', string4))
print(re.sub(pattern2, '**', string4,1))    #用'**'替换pattern2中出现的字符,count:替换的个数
print('_' * 50)

# re.split(pattern,string,maxsplit,flags=0)：用于分割字符串,结果是一个列表类型
string5 = 'https://www.bilibili.com/video/BV1wD4y1o7AS?p=74&spm_id_from=pageDriver'
pattern3 = '[?|&]'      # 匹配[]中的任意一个?或者&
list4 = print(re.split(pattern3, string5))
list5 = print(re.split(pattern3, string5,1))    #匹配pattern里的符号进行分割,maxsplit:最大分割次数
